package com.hcss.qywechat.user.service;

import com.github.pagehelper.PageInfo;
import com.hcss.qywechat.user.model.WQyUser;
import com.hcss.qywechat.user.model.par.WQyUserPar;
import com.hcss.qywechat.user.model.vo.WQyUserVO;
import com.hcss.sys.user.model.HcSysUseragent;

import java.util.List;

/**
 * @描述: WQyUser-服务接口
 * @作者: fangtao
 * @创建日期: 2019-11-05 10:35:55
 */
public interface WQyUserService {

	/**
	 * 分页并获取数据
     *
	 * @param par 参数对象
	 * @return
	 */
    PageInfo<WQyUser> queryPagingData(WQyUserPar par) throws Exception;
	/**
	 * 分页并获取复杂数据
	 *
	 * @param model 参数对象
	 * @return
	 */
	PageInfo<WQyUserVO> queryPagingComplexData(WQyUserVO model) throws Exception;

    
    /**
     * 获取全部数据，不分页
     * @param par
     * @return
     */
    List<WQyUser> queryAllData(WQyUserPar par) throws Exception;
	/**
	 * 获取全部复杂数据，不分页
	 * @param model
	 * @return
	 */
	List<WQyUserVO> queryAllComplexData(WQyUserVO model) throws Exception;
	
	/**
	 * 插入一个新的model
     *
	 * @param model 要插入的model
	 * @return
	 */
	void insertModel(WQyUser model);

	/**
	 * 插入useragent表
	 * @param model
	 */
	void insertUseragent(WQyUserVO model);

	/**
	 * 插入useragent表
	 * @param model
	 */
	void insertUserbelongap(WQyUserVO model);

	/**
	 * 更新一个model
     *
	 * @param model 要更新的model
	 * @return
	 */
    void updateModel(WQyUser model);

	/**
	 * 复杂更新：用户表、用户关联货代表、机场表
	 * @param model
	 */
	void updateComplexModel(WQyUserVO model);
	
	/**
	 * 根据id集合删除数据
     *
	 * @param ids 要删除的id集合
	 * @return
	 */
    void deleteByIds(List<Long> ids);

	/**
	 * 删除用户、关联货代、所属机场
	 * @param model
	 */
	void deleteComplexData(WQyUserVO model);
	
	/**
	 * 通过主键id获取数据
     *
	 * @param id 主键
	 * @return
	 */
	WQyUser selectByPK(String id);

	/**
	 * 通过id获取复杂数据
	 * @param id
	 * @return
	 */
	WQyUserVO selectDataById(Long id) throws Exception;

	/**
	 * 校验唯一性
	 * @param model
	 * @return
	 */
	Boolean checkCodeUnique(WQyUserVO model);
	Boolean checkUseragent(WQyUserVO model);
	Boolean checkUserbelongap(WQyUserVO model);

	void resetPassword( WQyUserVO model );
}
